home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / cdity / MRQ.lha / MRQ / Source / RCS / config.h < prev    next >
C/C++ Source or Header  |  2000-10-16  |  3KB  |  127 lines

  1. head    1.1;
  2. access;
  3. symbols;
  4. locks
  5.     msbethke:1.1; strict;
  6. comment    @ * @;
  7.  
  8.  
  9. 1.1
  10. date    2000.01.25.17.20.40;    author msbethke;    state Exp;
  11. branches;
  12. next    ;
  13.  
  14.  
  15. desc
  16. @C header for MRQ's config parser, also defines a lot of data structures
  17. used throughout the program
  18. @
  19.  
  20.  
  21. 1.1
  22. log
  23. @Initial revision
  24. @
  25. text
  26. @/* config.h
  27. ** C header for MRQ's config parser, also defines a lot of data structures
  28. ** used throughout the program
  29. **
  30. ** ©1997-1999 by Matthias.Bethke <Matthias.Bethke@@gmx.net>
  31. ** You are free to modify this source or use parts of it in your
  32. ** own programs as long as they are distributed as freeware.
  33. */
  34.  
  35. /* $Id:$
  36. **
  37. ** $Log:$
  38. **
  39. */
  40.  
  41.  
  42. /* MRQString flags */
  43. #define MSF_PATTERN        (1<<0)
  44. #define MSF_NOCASE        (1<<1)
  45. #define MSF_SUBSTRING    (1<<2)
  46. #define MSF_FORMATTED    (1<<3)
  47.  
  48. /* MRQImage flags */
  49. #define MIF_FILENAME        (1<<0)
  50. #define MIF_STDIMAGE        (1<<1)
  51. #define MIF_ANIMATION    (1<<2)
  52. #define MIF_TRANSPARENT    (1<<3)
  53.  
  54. struct MRQImageButton
  55. {
  56.     APTR mib_Picture;                    // guigfx picture object
  57.     STRPTR mib_Text;                    // text to match for this button
  58. };
  59.  
  60. struct MRQImage
  61. {
  62.     APTR    mi_Object;                // filename pointer, guigfx object or image pointer
  63.     ULONG mi_Flags;                // see above (MIF_*)
  64. };
  65.  
  66. struct MRQString
  67. {
  68.     struct MinNode ms_Node;    // to link into string list
  69.     STRPTR ms_String;            // the actual string to match
  70.     ULONG ms_Flags;            // see above (MSF_*)
  71. };
  72.  
  73. struct MRQEventClass
  74. {
  75.     struct MinNode mec_Node;            // to link into eventclass list
  76.     struct MinList mec_StringList;    // list of strings for this class
  77.     struct MRQImage mec_Image;            // image to show for this class
  78.     STRPTR mec_RxPortName;                // ARexx port name
  79.     STRPTR mec_RxCmdString;                // command to dispatch
  80. };
  81.  
  82. struct MRQConfig
  83. {
  84.     APTR mc_MemPool;                                    // MemPool to use for all allocations
  85.                                                             // during config parse (see AVP.a!)
  86.     struct MinList mc_ClassList;                    // list of all event classes
  87.     struct MRQImageButton mc_IButton_Yes;        // Imagebuttons
  88.     struct MRQImageButton mc_IButton_No;        // if any
  89.     struct MRQImageButton mc_IButton_Cancel;    // chosen
  90.     struct MRQEventClass mc_DefClass;            // the default event class if no other matches
  91. };
  92.  
  93. struct Arguments        // for ReadArgs() to parse the configfile
  94. {                            // see template below
  95.     LONG NewClass;
  96.     STRPTR *Locale;
  97.     STRPTR String;
  98.     LONG Pattern;
  99.     LONG NoCase;
  100.     LONG Substring;
  101.     LONG Formatted;
  102.     STRPTR Image;
  103.      LONG Preload;
  104.     LONG Transparent;
  105.     STRPTR RxPort;
  106.     STRPTR RxCmd;
  107. };
  108.  
  109. #define CONFIG_RDAPATTERN "\
  110. NEWCLASS/S,\
  111. LO=LOCALE/K/M,\
  112. ST=STRING/K,\
  113. PA=PATTERN/S,\
  114. NC=CMPNOCASE/S,\
  115. SU=SUBSTRING/S,\
  116. FO=FORMATTED/S,\
  117. IM=IMAGE/K,\
  118. PL=PRELOAD/S,\
  119. TR=TRANSPARENT/S,\
  120. RP=REXXPORT/K,\
  121. RC=REXXCMD/K"
  122.  
  123. /* protos */
  124. struct MRQConfig *ReadMRQConfig(STRPTR);
  125. void FreeMRQConfig(struct MRQConfig*);
  126. @
  127.